package ooday05;
/** 静态方法 */
public class StaticMethod {
        int a;//实例变量(对象来访问)
        static int b;//静态变量（类名来访问）

        //静态方法何时用：方法的操作和对象无关（不需要访问对象的属性和行为）
        //在say()中需要访问对象的属性和行为，所以认为say()的操作与对象有关，不能设计为静态方法
        void say(){
            System.out.println(a);
        }
        //在plus（）中不需要访问对象的属性和行为，所以认为plus()的操作与对象无关，可以设计为静态方法
        static int plus(int x,int y){
            return x+y;
        }


        void show(){//实例方法,有隐式this
            System.out.println(this.a);
            System.out.println(StaticMethod.b);
        }
        static void test(){//静态方法,没有有隐式this
            /*静态方法中没有隐式this传递
            *没有this就意味着没有对象
            *而实例变量a必须是通过对象访问的，所以静态方法中不能访问实例变量
            * 所以如下代码编译错误
            * */
            //System.out.println(a); //编译错误，静态方法中不能直接访问实例成员
            System.out.println(StaticMethod.b);
        }


}
